package com.springboot.web.controller;

import com.springboot.web.bean.User2;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.List;

@RestController //等价于在类中的每个方法上都加了@ResponseBody
//@Controller
@Slf4j
@RequestMapping("/json")
public class JsonController{    
	@RequestMapping("/test1")
    // @ResponseBody //将handler的返回值，转换成json(jackson),并将json响应给客户端。
    public User2 test1(){
        return new User2(1,"aaa",new Date(),false);
    }
    // @ResponseBody还可以用在handler的返回值上
    @RequestMapping("/test2")
    public @ResponseBody List<User2> test2(){
        return List.of(
                new User2(1, "aaa", new Date(), true),
                new User2(2, "bbb", new Date(), false),
                new User2(3, "ccc", new Date(), true)
        );
    }
    // 如果返回值已经是字符串，则不需要转json，直接将字符串响应给客户端 
    @RequestMapping(value="/test3")
    @ResponseBody 
    public String test3(){
        return "你好";
    }

    @PostMapping("/users")
    public String addUser(@RequestBody User2 user2){//@RequestBody将请求体中的json数据转换为java对象
        log.info("Post user :"+ user2);
        System.out.println(1/0);
        return "success";
    }
}